Solver Support in MPL

MPL works with the world's fastest and most advanced solver optimization engines, such as CPLEX and XPRESS and many other industrial strength solvers. MPL is designed to have an open architecture and is not restricted to only one solver. This enables the model developer to choose the solver that best suits his specific project needs.

A unique feature of MPL is that it links to solvers directly through memory. As no files are involved, this seamless connection is considerably faster and more robust than the traditional use of files in other modeling systems. In the event it is necessary to change any of the algorithmic options for the solver, MPL provides easy-to-use option dialog boxes.

MPL has extensive solver support and offer advanced features such as:

MPL can work with most commercial solvers currently available on the market today, including the following:

Solver Supported Algorithms
CPLEX LP, MIP, BAR, MIQP
GUROBI LP, MIP, BAR, MIQP
XPRESS LP, MIP, BAR, MIQP
SULUM LP
Lindo LP, MIP, BAR, MIQP, NLP, MINLP
XA LP, MIP
FortMP LP, MIP, BAR, MIQP
FrontLine LP, MIP
COINMP LP, MIP, BAR
LPSolve LP, MIP
GLPK LP, MIP
CONOPT LP, NLP
KNITRO LP, NLP, MINLP
LGO NLP, Global

CPLEX is one of the most advanced and popular optimization solvers on the market today. It offers a complete solution that contains almost every feature that the model developer would need in an optimization solver. GUROBI is a powerful optimizer from Gurobi Optimization, Inc. that is designed from ground up to always run in parallel model, capable of simultaneously exploiting any number of processors and multiple cores. XPRESS, from FICO, is a world-renowned solver, which strength lies in its ability to solve very large optimization problems especially mixed integer.

There are numerous other solvers on the market today that offer different features that are sometimes not supported by the market leaders; FortMP for example from OptiRisk Systems offers stochastic programming. Sunset Software Technologies offers a reasonably priced, relatively fast solver, XA as does SULUM.

Lindo Systems product, Lindo, is popular with academic users. FrontLine is from FrontLine Systems, the same company that provides solvers for Microsoft Excel.

CoinMP is an open source solver maintained as part of the COIN-OR with advanced MIP and cut generation library support. GLPK and LPSolve are free solvers with support for both linear and mixed integer programming.

MPL currently supports three nonlinear solvers: CONOPT, a large-scale solver from ARKI Consulting in Denmark that is highly specialized in solving difficult nonlinear models; the KNITRO solver made by Ziena Optimization, Inc; and finally the LGO a global optimization package from Pinter Consulting.

Solving Models in MPL

After you have edited your model in the model editor, choose Solve <solvername> from the Run menu to let MPL start optimizing. The Status Window appears, and MPL starts reading the model file.

The Status Window

The status window describes what the program is doing (reading, solving, writing), and provides statistics on the problem. While MPL reads the model file, the status window displays the number of lines read, the number of variables and constraints encountered, and how much memory has been used. While solving, this window shows you the number of iterations, and the value of the objective function. Figure 3.4 shows an example of a status window:

The Status Window Screenshot

Figure : The Status Window

The top section in the status window is the message line. It tells you what MPL is doing at that moment, for example reading the model formulation, solving the model, and writing the solution file. The next section contains the name of the main model file, number of lines read so far, and how much memory has been used by MPL, and time elapsed since the start of the run.

The next section gives you various statistics of the problem, the number of variables and constraints in the model, number of nonzeros, and the number of integer variables.

The last section tells you what the status of the solver is while optimizing the model. It gives you the total number of iterations the solver has done so far. To the right it shows the current value of the objective function and while in Phase 1 the amount of infeasibilities that are left.

For integer problems the last section also reports the number of nodes in the branch and bound tree visited so far, how many improving integer solution have been found, and the best possible integer solution.

The Error Message Window

If MPL finds a mistake or an error in the formulation while reading, an error window appears. It contains the erroneous line in the model file. Following that line comes a message with a short explanation. Appendix B: Error Messages contains a list of all the error messages in MPL. Here is an example of a typical error message:

MPL Error Message Window Screenshot

Figure : The MPL Error Message Window

The above message tells you that the index month in the variable vector Inventory, was not defined in the underlying constraint InvtBal. The mistake was located in line 44 of the model file.

Pressing the OK button or the Return key returns you to the model editor. The cursor is automatically positioned at the location of the error in the model file, with the offending word or character highlighted.

If you need more help on the error message, press the Help button. This will give you further explanation of the error, including examples.


Back To Top | Maximal Home Page | Table of Contents | Previous Page | Next Page